package com.yunyao.framework.vo.payment;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 付款VO对象
 * @author chenyejian
 * @date 2024-07-16
 */
@Data
public class PaymentVO implements Serializable {
    private static final long serialVersionUID = -8166640423268265364L;
    /**
     * 主键
     */
    private String id;

    /**
     * 合同ID
     */
    private String contractId;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 项目id
     */
    private String projectId;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 签订日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date signDate;

    /**
     * 合同方式
     */
    private String contractMethod;

    /**
     * 合同总金额
     */
    private BigDecimal contractTotalPrice;

    /**
     * 采购单位ID
     */
    private String purchaseDeptId;

    /**
     * 采购单位部门名称
     */
    private String purchaseDeptName;

    /**
     * 项目所属部门id
     */
    private String projectDeptId;

    /**
     * 项目所属部门名称
     */
    private String projectDeptName;

    /**
     * 合同预付款状态
     */
    private String contractPrePaymentStatus;

    /**
     * 订单预付款状态
     */
    private String orderPrePaymentStatus;

    /**
     * 合同预付款截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date contractEndDate;

    /**
     * 合同预付款比例
     */
    private BigDecimal contractPrePaymentRate;

    /**
     * 合同预付款金额
     */
    private BigDecimal contractPrePaymentPrice;

    /**
     * 收款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private String receiveDate;

    /**
     * 收款金额
     */
    private BigDecimal receivePrice;

    /**
     * 收款方式
     */
    private String receiveType;

    /**
     * 收款节点id
     */
    private String receiveNodeId;

    /**
     * 收款节点名称
     */
    private String receiveNodeName;

    /**
     * 文件
     */
    private String file;

    /**
     * 备注
     */
    private String mark;

    /**
     * 流程状态
     */
    private String auditStatus;

    /**
     * 供应商Id
     */
    private String supplierDeptId;

    /**
     * 供应商名称
     */
    private String supplierDeptName;

    /**
     * 收款方式名称
     */
    private String receiveTypeName;

    /**
     * 结余金额
     */
    private BigDecimal balanceAmount;

    /**
     * 关联收款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date relatedReceiveDate;

    /**
     * 关联收款方式
     */
    private String relatedReceiveType;

    /**
     * 关联收款金额
     */
    private BigDecimal relatedReceiveAmount;

    /**
     * 关联收款记录id
     */
    private String relatedReceiveId;
}
